package com.example.springfreemarker.pojo.dayincome;

import cn.hutool.core.date.DateUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Revenue {
    //日期
    @Builder.Default
    private String date = DateUtil.format(new Date(), "MM月dd日");
    //主体名称 物业/停车场
    private String subjectName;
    //总营收
    @Builder.Default
    private IncomeDetail total = new IncomeDetail();
    //总非临停营收
    @Builder.Default
    private IncomeDetail oppositeTemp = new IncomeDetail();
    //总临停营收
    @Builder.Default
    private IncomeDetail temp = new IncomeDetail();

    //-------------------------------------------临停-----------------------------------

    // ----------- 临停线下支付 ---------
    //临停线下支付 总计
    @Builder.Default
    private IncomeDetail tempOffline = new IncomeDetail();
    //临停线下现金
    @Builder.Default
    private String tempOfflineCash = "0";
    //临停线下微信支付
    @Builder.Default
    private String tempOfflineWechat = "0";
    //临停线下阿里支付
    @Builder.Default
    private String tempOfflineAlipay = "0";

    // ----------- 临停线上支付 ---------
    @Builder.Default
    private IncomeDetail tempOnline = new IncomeDetail();

    // ----------- 临停线上第三方支付 ---------
    //临停第三方支付
    @Builder.Default
    private String tempTTPay = "0";
    //临停第三方支付 明细
    @Builder.Default
    private TTPay tempTTPayDetail = new TTPay();

    // ----------- 临停线上贵州银行 ---------
    //贵州银行
    @Builder.Default
    private String gzBank = "0";
    //贵州银行扫码
    @Builder.Default
    private String gzScanCode = "0";
    //贵行银行免秘
    @Builder.Default
    private String gzFreeSecret = "0";

    // ----------- 临停线上微信支付宝 ---------
    //临停线上微信支付
    @Builder.Default
    private String tempOnlineWechat = "0";
    //临停线上阿里支付
    @Builder.Default
    private String tempOnlineAlipay = "0";

    //---------------------------------------------非临停-----------------------------------


    //-----------------------月卡套餐------------------
    //月卡套餐详情
    @Builder.Default
    private ComboIncomeDetail monthCardDetail  = new ComboIncomeDetail();

    //-----------------------月卡套餐线上支付------------------
    //月卡套餐线上支付 总计
    @Builder.Default
    private IncomeDetail oppositeTempOnline = new IncomeDetail();

    //月卡套餐线上第三方支付 总计
    @Builder.Default
    private String oppositeTempTTPay = "0";

    //月卡套餐线上第三方支付明细
    @Builder.Default
    private TTPay oppositeTempTTPayDetail = new TTPay();

    //月卡套餐线上 微信支付
    @Builder.Default
    private String oppositeTempWechat = "0";
    //月卡套餐线上 阿里支付
    @Builder.Default
    private String oppositeTempAlipay = "0";

    //-----------------------月卡套餐线下支付------------------
    @Builder.Default
    private IncomeDetail oppositeTempOffline = new IncomeDetail();


    //-----------------------其他套餐------------------
    //其他套餐 总计
    @Builder.Default
    private IncomeDetail otherCardDetail = new IncomeDetail();
    //特种卡套餐详情
    @Builder.Default
    private ComboIncomeDetail specialCardDetail  = new ComboIncomeDetail();
    //储值卡套餐详情
    @Builder.Default
    private ComboIncomeDetail chargeCardDetail  = new ComboIncomeDetail();


    //-----------------------商户授权------------------
    //商户授权总计
    @Builder.Default
    private IncomeDetail businessAuthorize = new IncomeDetail();

    //----------------商户授权 余量 ------------
    //余量授权次数
    @Builder.Default
    private String leftAuthorizeNum = "0";
    //余量充值 明细
    @Builder.Default
    private IncomeDetail leftRecharge = new IncomeDetail();
    //余量充值 线上支付明细
    @Builder.Default
    private IncomeDetail businessOnline = new IncomeDetail();
    //余量充值 线上支付 微信支付
    @Builder.Default
    private String businessWechat = "0";
    //余量充值 线上支付 阿里支付
    @Builder.Default
    private String businessAlipay  = "0";
    //余量充值线下支付
    @Builder.Default
    private IncomeDetail businessOfline = new IncomeDetail();

    //----------------商户授权 次卡 ------------
    //商户授权次卡授权次数
    @Builder.Default
    private String numberCardAuthorizeNum = "0";
    //商户授权套餐授权次数
    @Builder.Default
    private String comboAuthorizeNum = "0";
}
